package com.example.demo.common;

import org.springframework.util.DigestUtils;

import java.nio.charset.StandardCharsets;
import java.util.UUID;

/**
 * 密码加盐处理
 */
public class PasswordUtil {
    public static String encrypt(String password) {
        String salt = UUID.randomUUID().toString().replace("-","");
        // 数据加密
        String finalPassword = DigestUtils.md5DigestAsHex((salt+password).getBytes(StandardCharsets.UTF_8));
        // 返回盐值和密码
        return salt + "$" +finalPassword;
    }
    public static boolean decrypt(String password, String dbPassword) {
        // 从数据库拿到盐值用于解密
        String[] ps = dbPassword.split("\\$");
        String salt = ps[0];
        // 将用户传入的密码使用盐值加密
        password = DigestUtils.md5DigestAsHex((salt+password).getBytes(StandardCharsets.UTF_8));
        // 比对密码
        if(password.equals(ps[1])) {
            return true;
        }
        return false;
    }
}
